package com.snowj.apaas.service;

import com.snowj.apaas.domain.auto.Users;
import com.snowj.apaas.web.vm.UsersVm;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Optional;

/**
 * @author oliver
 * @date 2020/9/26
 */
public interface UsersService {

    /**
     * 获取用户列表
     * @param pageable
     * @return
     */
    Page<UsersVm> listUsers(Pageable pageable);

    /**
     * 获取用户信息
     *
     * @param username
     * @return
     */
    Optional<UsersVm> getUserByUsername(String username);


    /**
     * 创建用户
     * @param users
     * @return
     */
    Users createUser(UsersVm users);


    /**
     * 编辑用户
     * @param users
     * @return
     */
    Users updateUser(UsersVm users);

    /**
     * 删除用户
     * @param username
     */
    void deleteUser(String username);

}
